<?php
/**
 * CK框架 文件类
 * @author wujibing<283109896@qq.com>
 * @version   3.0
 * @category   CkFrameWork
 * @package  CkFrameWork
 * @subpackage lib
 */
final class file
{
    /**
     * 判断一个文件是否可写
     * @param string $fileName
     * @return bool
     */
    public static function isWritable($fileName)
    {
        return is_writable($fileName);
    }
    /**
     * 判断一个文件是否存在
     * @param string $fileName
     * @return bool
     */
    public static function exists($fileName)
    {
        return file_exists($fileName);
    }
    /**
     * 追加内容到一个文件
     * @param string $fileName
     * @param string $fileContent
     */
    public static function appendContent($fileName,$fileContent)
    {
    	$fp = fopen($fileName, 'a+');
    	$lock=flock($fp, LOCK_EX);
    	if($lock)
    	{
    		fwrite($fp,$fileContent);
    		flock($fp, LOCK_UN);
    	}
    	fclose($fp);
    }
    /**
     * 写入一个文件
     * @param string $fileName 文件名
     * @param mixed $fileContent 文件内容 可以为字符串或数组
     */
    public static function write($fileName,&$fileContent)
    {
        if (is_array($fileContent))
        {
            $fileContent = "<?php \r\ndefined('IN_CKFRAMEWORK') or die('Access Denied');\r\nreturn " .var_export($fileContent, true) . ";";
        }
        dir::mkDir(dirname($fileName));
        file_put_contents($fileName, $fileContent);
        chmod($fileName, 0777);
        $content = NULL;
    }
    /**
     * 读取文件夹
     * @param string $fileName
     * @param ref string $refContent
     */
    public static function read($fileName,&$refContent)
    {
        if(!file::exists($fileName))
        {
            throw new notFoundFile_Exception($fileName);
        }
        $refContent = file_get_contents($fileName);
    }
}